1. Field of the Invention
The present invention relates to a hardware device and method for transmitting a network protocol packet in a Transmission Control Protocol (TCP) Offload Engine (TOE) for network protocol acceleration; and, more particularly, to a hardware device and method for transmitting a network protocol packet using a dedicated hardware device mounted in a TCP offload engine (TOE) or a firmware in a transmission-only processor in a hardware manner, thereby reducing a system load that increases by processing the requests of packet transmission generated by a plurality of network application programs in a computer system.
This work was supported by the Information Technology (IT) research and development program of the Korean Ministry of Information and Communication (MIC) and the Korean Institute for Information Technology Advancement (IITA) [2005-S-405-02, “A Development of the Next Generation Internet Server Technology”].
2. Description of Related Art
In general, systems connected through a network have the relation of a server and a client. Here, a network program may be used for the server and the client to communicate with each other. The network program transmits and receives data through a socket, which is a communication access point in software manner, on a network.
When data is transmitted through the socket, a header and data of a network protocol packet stored in a memory are transferred to a transmission buffer of a network interface through a bus, and transmitted to the network through a controller. When data is received through the socket, the header and data of the network protocol packet is transmitted to a memory through a receiving buffer.
Such processes are performed by an operating system through an application program. In order to transmit data, the operating system generates a socket buffer for storing transmission data based on a socket generation routine of an application program. When the operating system receives a data transmission command, corresponding data is copied into a socket buffer of an operating system kernel. Here, the operating system forms a packet with the data stored in the socket buffer and transmits the formed packet after copying the header and the data thereof in the network interface.
As described above, in a conventional network program, the network protocol packet is transmitted based on a network protocol stack of the operating system. That is, the packet transmission is processed in software manner.
If the number of data transmission using network protocol increases caused by executing numbers of network application programs in a computer system, a lot of system load occurs in order to process the network protocol, to thereby degrade an overall system performance.